package com.yunqiao.service.api.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户信息
 *
 * @author Crocutax
 * @email wangxw725@163.com
 * @date 2019-03-04 18:35:31
 */
@TableName("tb_user")
@Data
@ApiModel(value = "用户信息对象")
public class UserEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId
    @ApiModelProperty(value = "", hidden = false)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 昵称
     */
    @ApiModelProperty(value = "昵称")
    private String name;
    /**
     * 1 用户 2司机
     */
    @ApiModelProperty(value = "1 用户 2司机")
    private Integer roleType;
    /**
     * 司机是否手车：1：已收车，2：未收车
     */
    @ApiModelProperty(value = "司机是否手车：1：已收车，2：未收车")
    private Integer driverState;
    /**
     * 城市合伙人审核0:待审核，1：已通过，2：已拒绝
     */
    @ApiModelProperty(value = "城市合伙人审核0:待审核，1：已通过，2：已拒绝")
    private Integer state;
    /**
     * 申请成为司机0：未申请 1：申请中 2：已同意3：已拒绝
     */
    @ApiModelProperty(value = "申请成为司机0：未申请 1：申请中 2：已同意3：已拒绝")
    private Integer applyDriver;
    /**
     * 拒绝成为司机原因
     */
    @ApiModelProperty(value = "拒绝成为司机原因")
    private String applyReason;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    private String phone;
    /**
     * 账号
     */
    @ApiModelProperty(value = "账号")
    private String account;
    /**
     * 省
     */
    @ApiModelProperty(value = "省")
    private String province;
    /**
     * 市
     */
    @ApiModelProperty(value = "市")
    private String city;

    /**
     * 区
     */
    @ApiModelProperty(value = "区")
    private String district;

    /**
     * 维度
     */
    @ApiModelProperty("经度")
    private String longitude;

    /**
     * 维度
     */
    @ApiModelProperty("维度")
    private String latitude;
    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    private String idNumber;
    /**
     * 1男2女
     */
    @ApiModelProperty(value = "1男2女")
    private Integer sex;
    /**
     * 紧急联系人姓名
     */
    @ApiModelProperty(value = "紧急联系人姓名")
    private String urgencyContactName;
    /**
     * 紧急联系电话
     */
    @ApiModelProperty(value = "紧急联系电话")
    private String urgencyContactPhone;
    /**
     * 车牌颜色:1蓝牌-2黄牌-3绿牌-4黄绿牌
     */
    @ApiModelProperty(value = "车牌颜色:1蓝牌-2黄牌-3绿牌-4黄绿牌")
    private Integer carBrandColor;
    /**
     * 1:单排， 2：双排
     */
    @ApiModelProperty(value = "1:单排， 2：双排")
    private Integer carType;
    /**
     * 车辆类型
     */
    @ApiModelProperty(value = "车辆类型")
    private Integer carTypeId;
    /**
     * 车牌号码
     */
    @ApiModelProperty(value = "车牌号码")
    private String carNumber;
    /**
     * 行驶证所有人类型:1公司-2本人-3他人
     */
    @ApiModelProperty(value = "行驶证所有人类型:1公司-2本人-3他人")
    private Integer drivingLicenseType;
    /**
     * 公司名称
     */
    @ApiModelProperty(value = "公司名称")
    private String company;

    /**
     * 驾驶证
     */
    @ApiModelProperty(value = "驾驶证")
    private String driverLicense;
    /**
     * 行驶证
     */
    @ApiModelProperty(value = "行驶证")
    private String drivingLicense;

    /**
     * 这个完全没用上
     * 状态:1申请中-2审核成功-3审核失败
     */
    @ApiModelProperty(value = "状态:1申请中-2审核成功-3审核失败")
    private Integer accountStatus;
    /**
     * 1未使用 2已使用
     */
    @ApiModelProperty(value = "1未使用 2已使用")
    private Integer redPacketStatus;

    /**
     * 上级ID
     */
    @ApiModelProperty(value = "上级ID")
    private Long superiorUserId;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    private String avatar;

    /**
     * 身份证正面
     */
    @ApiModelProperty(value = "身份证正面")
    private String idcardFront;

    /**
     * 身份证反面
     */
    @ApiModelProperty(value = "身份证反面")
    private String idcardBack;

    /**
     * 身份证手持
     */
    @ApiModelProperty(value = "身份证手持")
    private String idcardHandwith;

    /**
     * 身份证反面
     */
    @ApiModelProperty(value = "身份证反面")
    private String businessLicense;

    /**
     * 车辆45度照片
     */
    @ApiModelProperty(value = "车辆45度照片")
    private String carPic;

    /**
     * 账户余额
     */
    @ApiModelProperty(value = "账户余额")
    private BigDecimal balance;

    /**
     * 提现冻结余额
     */
    @ApiModelProperty(value = "提现冻结余额")
    private BigDecimal blockBalance;

    /**
     * 订单冻结账户余额
     */
    @ApiModelProperty(value = "订单冻结账户余额")
    private BigDecimal orderBlockBalance;

    /**
     * 押金
     */
    @ApiModelProperty(value = "押金")
    private BigDecimal deposit;
    /**
     * 赏金
     */
    @ApiModelProperty(value = "赏金")
    private BigDecimal moneyReward;

    /**
     * 拒单率
     */
    @ApiModelProperty(value = "拒单率")
    private BigDecimal rateRefuseOrder;

    /**
     * 准点率
     */
    @ApiModelProperty(value = "准点率")
    private BigDecimal ratePunctuality;

    /**
     * 评分
     */
    @ApiModelProperty(value = "评分")
    private BigDecimal scoreEvaluate;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码", hidden = true)
    private String password;
    /**
     * 微信唯一标识
     */
    @ApiModelProperty(value = "微信开放平台唯一标识")
    private String wxOpenid;

    /**
     * 微信唯一标识
     */
    @ApiModelProperty(value = "微信小程序唯一标识")
    private String wxCloudOpenid;

    /**
     * qq唯一标识
     */
    @ApiModelProperty(value = "qq唯一标识")
    private String qqOpenid;

    /**
     * 个推id
     */
    @ApiModelProperty(value = "个推id", hidden = true)
    private String cliendId;
    /**
     * 个推token
     */
    @ApiModelProperty(value = "个推token", hidden = true)
    private String deviceToken;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", hidden = true)
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", hidden = true)

    private Date updateTime;
    @ApiModelProperty(value = "乐观锁标识", hidden = true)
    private Long version;
    /**
     *
     */

    @ApiModelProperty(value = "0:未删除   1：已删除")
    private Integer deleted;

    @ApiModelProperty(value = "app版本号")
    private String appVersion;
    @ApiModelProperty(value = "阿里Id")
    private String aliCloudOpenid;
}
